This invention in general relates to the input/output devices which conform to a communications protocol standard known as the Small Computer System Interface standard (hereinafter SCSI). The first version of SCSI (SCSI-1) is described in ANSI X3.131-1986. The SCSI-1specification has recently been upgraded with an expanded interface, SCSI-2. There is not yet an official document for the SCSI-2 spec at the time of this filing.
The SCSI standard was adopted as an input/output standard by Apple Computer, Inc. for its Macintosh product line in 1986. It was also adopted at a later date by IBM Corporation as an input/output standard for its PS/2 product line. Disk drives using the SCSI interface have consequently been connected to or incorporated into personal computers since 1986. During this time the capacities of new drives have increased more than twenty-fold. A typical SCSI drive in 1986 had a 10 megabyte capacity (Rodime, Inc.). In 1990, Quantum Corporation sold a drive of an equivalent form factor (or physical size) with a capacity of 210 megabytes. Owners of drives produced in 1986, and owners of drives produced since then, however, have not been able to take advantage of the increased capacity of the newer drives other than by purchasing the newer drives. In addition newer drives can operate at higher effective rates through the use of "read-ahead buffers" and "track caches". Owners of drives without these capabilities have not been able to take advantage of this ongoing advance in drive technology.
The SCSI standard defined in 1986, now known as SCSI-1, has been superseded by what is known as the SCSI-2 standard. Older drives built to conform with the SCSI-1 standard are not able to take advantage of the performance enhancements made possible by the newer standard (which includes wider data paths, increased buss speed, etc.).
Connector technology has also continued to change. For example drives with built-in cables (cables which cannot be changed) cannot be connected to computers or other SCSI devices which use newer connection technology such as that in the Next Workstation or in the Macintosh Powerbook portable computers.
The SCSI standard, even as defined by SCSI-2, is limited to eight devices, including the host computer, connected at one time to the buss.
In the past several years a new type of drive utilization technology has been defined known as RAID. RAID is an acronym for Redundant Arrays of Inexpensive Drives. There are various levels of RAID technology; RAID-1 to RAID-5; the point of RAID is to allow multiple inexpensive drives to be interconnected in such a way that the reliability of the entire set of drives is improved, and to allow the drives to be accessed in parallel. RAID systems, although they include many so-called "inexpensive" drives, are not themselves, as a system, inexpensive. Nor do RAID systems currently on the market, allow dissimilar preexisting drives to be connected together into a RAID configuration.
Notwithstanding the aforementioned short comings, solutions have been limited. Data compression technology has been supplied in software (Stuffit.TM., Aladdin Systems; Disk Doubler.TM., by Salient Software) and in hardware in the form of data compression chips (Stac, Hewlett-Packard and others). Data compression technology allows any drive to increase its data storage capacity by encoding data in a compact form. However, software solutions are slow, and the hardware solutions (which for the most part are built into newer tape drives) have been implemented as add-in cards specific to a particular computing environment (e.g. DoubleUp.TM. by Sigma Designs, which works with certain Macintosh computers), and consequently are not available for use with preexisting disk drives.
Therefore, a primary object of this invention is to provide data compression technology which can expand the capacity of any SCSI device which is used to store and retrieve data, including older drives and drives not integral with the present invention, and without restricting the use of that technology to one particular kind of host computer.
Another object of this invention is to expand the number of devices which can effectively be attached to the SCSI buss beyond eight.
A further object of this invention is to increase the effective performance of attached SCSI devices (increasing the useful life of older SCSI drives) by providing expanded data buffering, and by providing a SCSI-2 compliant interface to SCSI-1 devices.
Other objects of the invention are to provide a physical interface between devices which use incompatible connector technology, to provide low-cost RAID technology which can make use of preexisting dissimilar drives, and to allow the creation of virtual devices made up of individual SCSI devices but which appear as monolithic devices to other SCSI devices on the primary SCSI chain.
The present invention accomplishes these objects by functioning as a SCSI device, as well as a means for translating between SCSI devices. As such it interprets SCSI commands and discriminates between SCSI commands meant for itself as well as SCSI commands meant for devices connected to the invention. There is no provision in the SCSI standard for such discrimination. Therefore, the present invention provides an efficient logical adaptation of the SCSI standard to support such discrimination while minimally interfering with the existing SCSI standard.